Editing long lines in pygrub interactively could lead to tracebacks.
authorTim Deegan <Tim.Deegan@xensource.com>
Wed, 28 Mar 2007 09:12:16 +0000 (09:12 +0000)
committerTim Deegan <Tim.Deegan@xensource.com>
Wed, 28 Mar 2007 09:12:16 +0000 (09:12 +0000)
Attached patch fixes things.

Signed-off-by: Jeremy Katz <katzj@redhat.com>
tools/pygrub/src/pygrub

index 9b3d15f6751f610a9eb84aec59cbf2f29a276d8b..8f4e3473f792850bdcb2593921499997e1bffb06 100644 (file)
@@ -125,16 +125,13 @@ class GrubLineEditor(curses.textpad.Textbox):
         is that we can handle lines longer than the window."""
 
         self.win.clear()
-        if self.pos > 70:
-            if self.pos > 130:
-                off = 120
-            else:
-                off = 55
-            l = [ "<" ] + self.line[off:]
-            p = self.pos - off
-        else:
-            l = self.line[:70]
-            p = self.pos
+        p = self.pos
+        off = 0
+        while p > 70:
+            p -= 55
+            off += 55
+
+        l = self.line[off:off+70]
         self.win.addstr(0, 0, string.join(l, ("")))
         if self.pos > 70:
             self.win.addch(0, 0, curses.ACS_LARROW)